import jdk.swing.interop.SwingInterOpUtils;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:何人亮
 * Date:2024-05-04
 * 17:55
 */
public class Test {
    public static void main(String[] args) {
        System.out.println("1");
        hanfun(1,'A','B','C');
        System.out.println("2");
        hanfun(2,'A','B','C');
        System.out.println("3");
        hanfun(3,'A','B','C');
        System.out.println("4");
        hanfun(4,'A','B','C');
    }
   //pos1是起始位置，pos2是中转位置，pos3是终点位置
    //汉罗塔本质为起点借助中转到达终点
    //要注意起点，中转，终点的位置变换
    public static void hanfun(int n,char pos1,char pos2,char pos3){
        //起点借助中转到达终点
        if(n==1){
            move(pos1,pos3);
            //只有一个时，起点直接到达终点
        }else{
            hanfun(n-1,pos1,pos3,pos2);
            //先将n-1个从pos1放在pos2，
            move(pos1,pos3);
            //在把最大的底盘放在终点pos3
            hanfun(n-1,pos2,pos1,pos3);
            //再将n-1个从起点pos2借助中转pos1放在终点pos3
        }
    }
    public static void move(char pos1,char pos3){
        System.out.println(pos1+"->"+pos3);
    }
}
